package com.kexio.auth.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 性能监控注解
 * 用于标记需要监控性能的方法
 * 
 * @author Kexio Team
 * @since 1.0.0
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface PerformanceMonitor {
    
    /**
     * 监控描述
     */
    String value() default "";
    
    /**
     * 慢查询阈值（毫秒）
     */
    long threshold() default 1000L;
    
    /**
     * 是否记录参数
     */
    boolean logArgs() default false;
    
    /**
     * 是否记录返回值
     */
    boolean logResult() default false;
}
